package arithmetic.redBook;

import java.util.Scanner;
import java.util.Stack;

/**
 * Created by jiangfeng on 2017/10/13.
 *
 * 找出 01序列中 最长连续子序列包含了相同个数0和1。例如  0101001100 最大序列为 01010011 个数为8
 * 输入数据包含两行数据
 输入的第一行为数组的长度n。
 第二行为n个。或1的整形数字，用空格分割。
 *
 * 测试用例：
 * 输入：
 * 3
 * 0 1 0
 * 输出
 * 2
 */
public class RedBook2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int length = scanner.nextInt();
        String value = scanner.next();
        value = scanner.nextLine();
        String[] strings = value.split(" ");

        // 统计01的个数
        int[] count = {0,0};
        int arr2[] = new int[length],num[] = new int[2*length+1],curLen=0,maxLen=0;
        for(int i=0;i<length;i++){
            int val = Integer.valueOf(strings[i]);
            count[val] +=1;
            arr2[i] = count[1]-count[0];
            if(num[arr2[i]+length]==0){
                num[arr2[i]+length]=i;
            }else {// 存在
                curLen=i-num[arr2[i]+length]+1;
                if(curLen>maxLen){
                    maxLen=curLen;
                }
            }
        }
        System.out.println(maxLen);
    }
}
